import Countly from '../../static/js/lib/countly'
import moment from 'moment'
import tools from '@/utils/tools'
import StorageKeys from '@/common/const/StorageKeys'
import CryptoJS from 'crypto-js'
import api from '@/common/config/api'
Countly.init({
  url: api.smartPushApi,
  debug: !true,
  app_key: 'smartPush'
})

let importTime = 0
let hashUni = ''
let startTimeUni = 0
let keys = [
// 内容类型：
  {1: '文字', 2: '音频', 3: '视频'},
// 区域分类：
//   {1: '贵州省', 2: '贵阳市', 3: '观山湖区', 4: '南明区', 5: '云岩区', 6: '白云区', 7: '花溪区', 8: '乌当区', 9: '清镇市', 10: '开阳县', 11: '息烽县'},
// // 主题分类：
//   {1: '本地动态', 2: '政策解读', 3: '人事动态', 4: '警钟长鸣', 5: '党务知识', 6: '动态', 7: '示范带', 8: '身边好党员', 9: '党史上的今天'},
// // 事件分类：
//   {1: '召开会议', 2: '考察调研', 3: '主持会议', 4: '致辞', 5: '出席', 6: '发展', 7: '发表', 8: '建设', 9: '讲话'},
// // 层次分类：
//   {1: '中央', 2: '省级', 3: '市级', 4: '区县级'},
// // 来源分类：
//   {1: '共产党员网', 2: '人民网', 3: '新华社', 4: '人民日报', 5: '贵州日报', 6: '贵阳日报', 7: '贵阳党建网', 8: '贵阳市政府网', 9: '贵阳市人力资源网', 10: '天眼新闻', 11: '知知贵阳', 12: '贵州改革'},
// // 人物分类：
//   {1: '习近平', 2: '李克强', 3: '孙志刚', 4: '谌贻琴', 5: '赵德明', 6: '陈晏', 7: '滕伟华'},
];

function convertKey (key) {
  // 数组直接转字符串返回
  if (Array.isArray(key)) {
    return key.join(',');
  }
  if (key === '') {
    return '';
  }
  if (Number.isInteger(parseInt(key))) {
    return parseInt(key)
  }
  let result = '';
  keys.some(v => {
    for (let k in v) {
      if (v[k] === key) {
        result = k;
        break
      }
    }
    if (!result) {
      key = result;
      return false
    }
  })
  return key;
}

export function logEvent (actionType, tag) {
  importTime++
  let hash = CryptoJS.MD5(tag.content_id).toString()
  console.log(`操作取值:`,actionType)
  console.log(`行为记录:`,tag)
  console.log(`行为记录次数:${importTime}`)
  let {nickname, id, qq, username} = tools.getUserInfo()
  let timestamp = Date.now()
  let {width, height} = window.screen
  let {clientX, clientY} = event || {}
  let {_os, _os_version} = Countly.getMetrics()
  let browse_time = 0 // 浏览时长
  let operation_id = hash
  let start_time = timestamp
  let end_time = 0
  if (hashUni === hash) {
    operation_id = hashUni
    start_time = startTimeUni
    browse_time = timestamp - startTimeUni
    end_time = timestamp
  } else {
    hashUni = hash
    startTimeUni = timestamp
  }
  Countly.add_event({
    key: 'smartPush',
    segmentation: {
      'user': { // 用户信息
        'uid': id || '', // 用户唯一标识
        'uname': nickname || '', // 用户名称
        'nick': qq || '', // 昵称
        'party_id': username || '' //党员编号
      },
      'tag': { // 业务信息
        'content_type': convertKey(!tag.content_type ? localStorage.getItem(StorageKeys.LOG_CONTENT_TYPE) : tag.content_type), // 1 文字、2 音频、3 视频
        'area_type': convertKey(tag.area_type) + '', //区域分类：1 贵州省、2 贵阳市、3 观山湖区、4 南明区、5 云岩区、6 白云区、7 花溪区、8 乌当区、9 清镇市、10 开阳县、11 息烽县
        'theme_type': convertKey(!tag.theme_type ? localStorage.getItem(StorageKeys.LOG_THEME_TYPE) : tag.theme_type) + '', // 主题分类：1 本地动态、2 政策解读、3 人事动态、4 警钟长鸣、5 党务知识、6 动态、7 示范带、8 身边好党员、9 党史上的今天
        'event_type': convertKey(tag.event_type) + '', // 事件分类：1 召开会议、2 考察调研、3 主持会议、4 致辞、5 出席、6 发展、7 发表、8 建设、9 讲话
        'arrangement_type': convertKey(tag.arrangement_type) + '', //层次分类：中央、省级、市级、区县级
        'soure_type': convertKey(tag.soure_type) + '', // 来源分类：1 共产党员网、2 人民网、3 新华社、4 人民日报、5 贵州日报、6 贵阳日报、7 贵阳党建网、8 贵阳市政府网、9 贵阳市人力资源网、10天眼新闻、11 知知贵阳、12 贵州改革
        'character_type': convertKey(tag.character_type) + '', // 人物分类：1 习近平、2 李克强、3 孙志刚、4 谌贻琴、5 赵德明、6 陈晏、7 滕伟华
        'other_type': tag.other_type, // 其他分类
        'organization_type': convertKey(tag.category_type), // 组织分类 （目前使用这一个分类20201126）1 农村 2 城市社区 3 机关 4 学校 5 国有企业 6 非公有制经济组织和社会组织 7 其他
        'content_id': tag.content_id, // 内容ID
        'content_title': tag.content_title, // 内容标题
        'publish_time': moment(tag.publish_time).valueOf() // 发布时间戳
      },
      'device': { // 设备信息
        'mac': 'xxx', // mac地址
        'system_version': _os_version, // 系统版本
        'system_type': _os.toLowerCase() === 'ios' ? 2 : 1 // 系统类型，1 android，2 ios
      },
      'action': { // 行为信息
        'type': actionType, // 事件类型：1 点赞、2 收藏、3 评论、4 转发、5 浏览，
        'browse_time': browse_time, // 浏览时长，毫秒
        'operation_id': operation_id + '', // 操作id
        'start_time': start_time, // 访问开始时间
        'end_time': end_time, // 访问结束时间
        'x': clientX, // x坐标
        'y': clientY, // y坐标
        'width': width, // 界面宽度
        'height': height, // 界面高度
        'view': window.location.hash // 路径
      },
      'timestamp': timestamp,
      'hour': new Date().getHours()
    }
  })
}

